package LeetCode.interview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import LeetCode.interview._104_Maximum_Depth_of_Binary_Tree.TreeNode;

import sun.tools.jar.resources.jar;
import util.LogUtils;

/*
 * 
原题　
	 Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.
	
	Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.
	
	Note:
	You are not suppose to use the library's sort function for this problem.
	
	click to show follow up.
题目大意
		　给定一个n个对象颜色为红色，白色或蓝色的数组，对其进行排序，使相同颜色的对象相邻，颜色为红色，白色和蓝色。
	
	在这里，我们将使用0，1和2的整数分别表示红色，白色和蓝色。
	
	注意：
	你不认为使用库的排序功能来解决这个问题。
解题思路
	就是排序！！！没了。。。。。。
 * @Date 2017-10-08 21：41
 */
public class _075_Sort_Colors {
	
	/**
	 * @My: 排序：选择排序
	 * @param nums
	 */
    public void sortColors1(int[] nums) {
        int n = nums.length;
        for (int i = 0; i < n-1; i ++) {
            for (int j = i+1; j < n; j ++) {
                if (nums[i] > nums[j]) {
                    int t = nums[i];
                    nums[i] = nums[j];
                    nums[j] = t;
                }
            }
        }
    }
	
	/**
	 * @My: 排序：冒泡排序
	 * @param nums
	 */
    public void sortColors2(int[] nums) {
        int n = nums.length;
        for (int i = 0; i < n; i ++) {
            for (int j = 0; j < n-i-1; j ++) {
                if (nums[j] > nums[j+1]) {
                    int t = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = t;
                }
            }
        }
    } 
	public static void main(String[] args) {
		_075_Sort_Colors obj = new _075_Sort_Colors();

	}

}
